﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Collections.ObjectModel;
using Model;
using System.Text.RegularExpressions;
using System.Collections;
using System.Globalization;

namespace Interfaces.Miembro
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        ICollection list;
        Miembroo directora { get { return (Miembroo)ViewState["directora"]; } set { ViewState["directora"] = value; } }
        Miembroo directoratarea { get { return (Miembroo)ViewState["directoratarea"]; } set { ViewState["directoratarea"] = value; } }
        ICollection<Miembroo> codirectora { get { return (ICollection<Miembroo>)ViewState["codirec"]; } set { ViewState["codirec"] = value; } }
        protected void Page_Load(object sender, EventArgs e)
        {
            bool index = Convert.ToBoolean(Request.QueryString["Index"]);
            if (index)
            {
                this.MultiView1.ActiveViewIndex = 0;
            }
            else
                this.MultiView1.ActiveViewIndex = 1;
            list = DataBase.Miembro2.BDMiembro.DevolverTodos();
            if (!IsPostBack)
            {
                Miembros.DataSource = DataBase.Miembro2.BDMiembro.DevolverTodos();
                Miembros.DataBind();
                Miembros0.DataSource = DataBase.Miembro2.BDMiembro.DevolverTodos();
                Miembros0.DataBind();
                codirectora = new Collection<Miembroo>();
            }
        }
        protected void DirectorBtn_Click(object sender, EventArgs e)
        {
            //if (!Page.IsPostBack)
            {
                LinkButton b = sender as LinkButton;
                bool sta = false;
                Miembroo auxDirectora = new Miembroo();
                try
                {
                    auxDirectora = DataBase.Miembro2.BDMiembro.DevolverMiembroPorCi(Convert.ToInt64(b.CommandArgument));
                    if (codirectora != null)
                    {
                        foreach (var item in codirectora)
                        {
                            if (auxDirectora.CI == item.CI)
                            {
                                Response.Write("<script>alert('La directora no puede ser codirectora'); </script>");
                                sta = true;
                            }
                            break;
                        }
                    }
                    if (!sta)
                    {
                        directora = auxDirectora;
                        Session["directora"]=directora;
                    }
                }
                catch (Exception ex)
                {
                    errorLb.Text = ex.Message;
                }
            }
        }
        protected void Button4_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("CI", typeof(long)));
            dt.Columns.Add(new DataColumn("Nombre", typeof(String)));
            dt.Columns.Add(new DataColumn("ApellidoPaterno", typeof(String)));
            dt.Columns.Add(new DataColumn("ApellidoMaterno", typeof(String)));
            dt.Columns.Add(new DataColumn("Cargo", typeof(String)));

            String format = @"^[a-zA-Z0-9 ]";
            Collection<Miembroo> resp = new Collection<Miembroo>();
            if (!String.IsNullOrEmpty(TextBox7.Text))
            {
                if (!Regex.IsMatch(TextBox7.Text, format))
                {
                    throw new Exception("Formato incorrecto");
                }
            }
            if (list != null)
            {
                if (TextBox7.Text!= null)
                {
                    
                    foreach (DataRowView prod in list)
                    {
                        Miembroo m = new Miembroo();
                        m.CI = Convert.ToInt64(prod["CI"]);
                        m.Cargo=prod["Cargo"].ToString();
                        m.Nombre = prod["Nombre"].ToString().ToLower(CultureInfo.CurrentCulture);
                        m.ApellidoPaterno = prod["ApellidoPaterno"].ToString().ToLower(CultureInfo.CurrentCulture);
                        m.ApellidoMaterno = prod["ApellidoMaterno"].ToString().ToLower(CultureInfo.CurrentCulture);
                        String lword = TextBox7.Text.ToLower(CultureInfo.CurrentCulture);
                        if (m.Nombre.Contains(lword) || m.ApellidoPaterno.Contains(lword) || m.CI.ToString().Contains(lword))
                        {
                            DataRow dr = dt.NewRow();
                          dr[0]=(m.CI.ToString());
                            dr[1]=(m.Nombre);
                            dr[2]=(m.ApellidoPaterno);
                            dr[3]=(m.ApellidoMaterno);
                            dr[4]=(m.Cargo);
                            dt.Rows.Add(dr);
                           
                            
                        }
                    }
                 }
            }
            if (dt.Rows.Count>0)
            {
                DataView dv = new DataView(dt);
                ICollection t = (ICollection)dv;
                Miembros0.DataSource = t;
                Miembros0.DataBind();
            }

        }
        protected void CodiBtn_Click(object sender, EventArgs e)
        {
            if (Session["codirectorasModificar"] != null)
            {
                codirectora = Session["codirectorasModificar"] as ICollection<Miembroo>;
                Session["codirectorasModificar"] = null;

            }
            LinkButton b = sender as LinkButton;
            bool esta = false;
            Miembroo mi = new Miembroo();
            mi = DataBase.Miembro2.BDMiembro.DevolverMiembroPorCi(Convert.ToInt64(b.CommandArgument));
            if (directora != null)
            {
                if (directora.CI == mi.CI)
                {
                    errorLb.Text = "La directora no puede ser codirectora";
                    esta = true;
                }
            }
            foreach (Miembroo item in codirectora)
            {
                if (item.CI == mi.CI)
                {
                    errorLb.Text = "Esta persona ya es codirectora";
                    esta = true;
                    break;
                }
            }
            if (!esta)
                codirectora.Add(mi);
            Session["codirectoras"] = codirectora;
        }

        protected void Button3_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("CI", typeof(long)));
            dt.Columns.Add(new DataColumn("Nombre", typeof(String)));
            dt.Columns.Add(new DataColumn("ApellidoPaterno", typeof(String)));
            dt.Columns.Add(new DataColumn("ApellidoMaterno", typeof(String)));
            dt.Columns.Add(new DataColumn("Cargo", typeof(String)));

            String format = @"^[a-zA-Z0-9 ]";
            Collection<Miembroo> resp = new Collection<Miembroo>();
            if (!String.IsNullOrEmpty(TextBox6.Text))
            {
                if (!Regex.IsMatch(TextBox6.Text, format))
                {
                    throw new Exception("Formato incorrecto");
                }
            }
            if (list != null)
            {
                if (TextBox6.Text != null)
                {

                    foreach (DataRowView prod in list)
                    {
                        Miembroo m = new Miembroo();
                        m.CI = Convert.ToInt64(prod["CI"]);
                        m.Cargo = prod["Cargo"].ToString();
                        m.Nombre = prod["Nombre"].ToString().ToLower(CultureInfo.CurrentCulture);
                        m.ApellidoPaterno = prod["ApellidoPaterno"].ToString().ToLower(CultureInfo.CurrentCulture);
                        m.ApellidoMaterno = prod["ApellidoMaterno"].ToString().ToLower(CultureInfo.CurrentCulture);
                        String lword = TextBox6.Text.ToLower(CultureInfo.CurrentCulture);
                        if (m.Nombre.Contains(lword) || m.ApellidoPaterno.Contains(lword) || m.CI.ToString().Contains(lword))
                        {
                            DataRow dr = dt.NewRow();
                            dr[0] = (m.CI.ToString());
                            dr[1] = (m.Nombre);
                            dr[2] = (m.ApellidoPaterno);
                            dr[3] = (m.ApellidoMaterno);
                            dr[4] = (m.Cargo);
                            dt.Rows.Add(dr);


                        }
                    }
                }
            }
            if (dt.Rows.Count > 0)
            {
                DataView dv = new DataView(dt);
                ICollection t = (ICollection)dv;
                Miembros.DataSource = t;
                Miembros.DataBind();
            }
        }

        protected void Volver_Click(object sender, EventArgs e)
        {
            int page = Convert.ToInt32(Request.QueryString["Page"]);
            if(page==1)
            Response.Redirect("/Programa/CrearPrograma.aspx");
            if (page == 2)
                Response.Redirect("/Programa/ModificarPrograma.aspx");

        }

        protected void DireButn0_Click(object sender, EventArgs e)
        {
            LinkButton b= sender as LinkButton;
            directoratarea = DataBase.Miembro2.BDMiembro.DevolverMiembroPorCi(Convert.ToInt64(b.CommandArgument));
            Session["directoratarea"] = directoratarea;                
        }

        protected void Volver0_Click(object sender, EventArgs e)
        {
            int verificarPagina = Convert.ToInt32(Request.QueryString["VerificarPagina"]);
            if (verificarPagina == 0)
                Response.Redirect("/Tareas/CrearTarea.aspx");
            else
            {
                if (verificarPagina == 1)
                    Response.Redirect("/Tareas/ModificarTarea.aspx?Relacionado=" + Request.QueryString["Relacionado"] + "&ID=" + Request.QueryString["ID"]);
                else
                {
                    if(verificarPagina==2)
                        Response.Redirect("/Tareas/Reportes.aspx");
                }
            }
        }
        
    }
}